記得在學生時期,我因為對於學校的選課網站操作不太習慣,於是便自己寫了一個簡單的爬蟲程式,用來自動抓取課程資訊和教師評價。經整理後,我和朋友合作設計了一個使用者友好的介面。令我驚訝的是,在網站上線的第一天,竟然有數百名同學使用了這個工具,這成為了一個有趣的回憶!
當我開始進入資料工程領域工作時,我發現很多工作任務實際上與我之前所經歷的情境相似。找到資料來源後,我建立了工具來自動抓取資料,然後將其以相關的方式儲存,並透過資料給予公司活團隊好的影響。而在實際應用於產品的資料工程中,有許多需要考慮和規劃的方面,包括系統穩定性、擴展性和安全性等等。因此,如何有效處理和管理資料是一個永無止境的議題,持續不斷地探討和改進方法。
Data engineering refers to the building of systems to enable the collection and usage of data. This data is usually used to enable subsequent analysis and data science; which often involves machine learning. Making the data usable usually involves substantial compute and storage, as well as data processing
-- wiki
在維基百科當中如果我們搜尋 Data Engineering ,當中對於Data engineering 的定義:建立資料使用及足存的系統。這些資料通成用於支持後續的分析以及機器學習中,讓資料能夠在資料處理及運算當中被合宜的使用。其所涵蓋的領域其實非常的廣泛,對於團隊的影響也非常深遠。在接下來的幾天當中逐漸跟大家進一步介紹資料工程的各個層面。
資料工程與資料科學兩個領域可以說是密不可分,舉例來說,如果資料科學家希望訓練出良好的模型,資料的品質就非常的重要,而如果要能以最高效率分析出某些商業情形或是用戶狀況,那資料處理的速度也是其中關鍵,可以說好的資料工程是好的資料科學的基礎。在現實案例中,百分之八十的時間會使用在資料的處理上。因此擁有良好的資料工程技巧以及資料工程團隊對於資料專案來說是非常重要的。
圖片來源:https://hackernoon.com/the-ai-hierarchy-of-needs-18f111fcc007
在 Monica Rogati 所提出的資料科學需求結構中,如果要訓練機器學習模型,要先經過底層的多資料工程的處理,包含資料搜集,資料的移轉,資料的轉換等重要的步驟。在資料科學家的技能當中,通常主要會是在模型相關的訓練及處理,對於資料工程的技能不一定會是資料科學家的強項,因此會需要對於資料工程熟悉的工程師加入一起合作,發揮彼此最大的能量!